/*
 * @Author: HeAo
 * @Date: 2022-08-10 14:23:25
 * @LastEditTime: 2022-08-14 17:16:55
 * @LastEditors: HeAo
 * @Description: 
 * @FilePath: \JavaScripe\day-04\01-定义属性.js
 * 别乱动！
 */

// // 1、字面量和构造函数 创建对象
var person = {
  name: 'zhangsan'
}
// // 2、使用defineProperty  添加一个新属性并控制属性特性或修改已有属性的属性特性
// Object.defineProperty(person, 'age', {
//   // 设置是否可以被delete删除掉（在）
//   configurable: false,
//   // 是否可以被forin循环遍历出来
//   enumerable: true,
//   // 是否可以修改值
//   writable: false,
//   // 值
//   value: 20
// })
// // 假设删除
// delete person.age
// console.log(person.age);
// // for-in循环
// for (var key in person) {
//   console.log(key);
// }
// // 假设修改值
// person.age = '12'
// console.log(person.age);

// 可枚举是什么意思



// // 2、使用definePropertys  添加多个值
// var person = {
//   name: 'zhangsan'
// }
// Object.defineProperties(person, {
//   // 身高
//   height: {
//     configurable: true,
//     value: 1.80
//   },
//   // 性别
//   gender: {
//     value: '男'
//   }
// })
// console.log(person.height);
// console.log(person.gender);
// console.log(person);

// // 3、读取对象的属性
// // Object.getOwnPropertyDescriptor()
console.log(Object.getOwnPropertyDescriptor(person, 'name'));


// // 4、读取对象的全部属性——Object. getOwnPropertyDescriptors()
// console.log(Object.getOwnPropertyDescriptors(person));